package com.sample;

import com.sample.demo.bean.Message;
import org.junit.runner.RunWith;
import org.kie.internal.runtime.StatefulKnowledgeSession;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * Created by haining on 2017/2/27.
 */
public class Test {
    public static void main(String[] args) {
        Message message = new Message();
        message.setValue(true);
        message.getDesc();
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-drools.xml");
        StatefulKnowledgeSession kSession = (StatefulKnowledgeSession) context.getBean( "ksession1");
        kSession.insert(message);
        kSession.fireAllRules();

    }

//1.测试
    public static final void main1(String[] args) {
//        try {
//            // load up the knowledge base
//            //1.KieServices
//            KieServices ks = KieServices.Factory.get();//TODO 这是固定的语法,但是并不知道为什么要这么做
//
//            //2.KieContainer
//            //第一种方法
//            KieContainer kContainer = ks.getKieClasspathContainer();
//            //第二种
//            ClassLoader classLoader = null;
//            ks.getKieClasspathContainer(classLoader);
//            //第三种
//            String containerId = null;
//            ks.getKieClasspathContainer(containerId);
//            //第四种
//            ks.getKieClasspathContainer(containerId, classLoader);
//            //第五种
//            ks.newKieClasspathContainer();
//            //第六种
//            ks.newKieClasspathContainer(classLoader);
//            //第七种
//            ks.newKieClasspathContainer(containerId);
//            //第八种
//            ks.newKieClasspathContainer(containerId, classLoader);
//            //第九种
//            ReleaseId releaseId = null;
//            ks.newKieContainer(releaseId);
//            //第十种
//            ks.newKieContainer(containerId, releaseId);
//            //第十一种
//            ks.newKieContainer(containerId, releaseId, classLoader);
//
//            //3.KieSession
//            KieSession kSession = kContainer.newKieSession("ksession-dtables");
//
//            // go !
//            DecisionTableTest.Message message = new DecisionTableTest.Message();
//            message.setMessage("Hello World");
//            message.setStatus(DecisionTableTest.Message.HELLO);
//            kSession.insert(message);
//            kSession.fireAllRules();
//        } catch (Throwable t) {
//            t.printStackTrace();
//        }
    }
}
